package sfs2x.extensions.game.src;

import com.smartfoxserver.v2.db.IDBManager;
import com.smartfoxserver.v2.entities.User;
import com.smartfoxserver.v2.entities.data.ISFSArray;
import com.smartfoxserver.v2.entities.data.ISFSObject;
import com.smartfoxserver.v2.entities.data.SFSObject;
import com.smartfoxserver.v2.extensions.BaseClientRequestHandler;

public class GemiUret extends BaseClientRequestHandler{

	@Override
	public void handleClientRequest(User player, ISFSObject param) {
		// TODO Auto-generated method stub
		 IDBManager dbManager = getParentExtension().getParentZone().getDBManager();
	     ISFSObject rtn = new SFSObject();
	     String statement = null;
	     //ISFSObject abk = new SFSObject();
	     
	     try{
	    	 float konumX = param.getFloat("konumX");
	    	 float konumY = param.getFloat("konumY");
	    	 float konumZ = param.getFloat("konumZ");
	    	 int gezegenid = param.getInt("gezegenid");
	    	 
	    	 statement ="SELECT metal_miktari, enerji_miktari, yiyecek_miktari, para_miktari"
	    	 +" FROM gezegen g, kaynak"
	    	 +" WHERE g.idGezegen =" + gezegenid
	    	 +" AND kaynak.idkaynak = g.Kaynak_sayisi";
	    	 
	    	 ISFSArray ret = dbManager.executeQuery(statement);
	    	 ISFSObject cevap = ret.getSFSObject(0);
	    	 int metal_miktari, enerji_miktari, yiyecek_miktari, para_miktari, kullaniciId;
				metal_miktari = cevap.getInt("metal_miktari");
				enerji_miktari = cevap.getInt("enerji_miktari");
				yiyecek_miktari = cevap.getInt("yiyecek_miktari");
				para_miktari = cevap.getInt("para_miktari");
				kullaniciId = cevap.getInt("idKullanici");
				
			statement = "SELECT metal_miktari,enerji_miktari,yiyecek_miktari,para_miktari"
				+ " FROM kaynak,gemitip"
				+ " WHERE kaynak.idkaynak = gemitip.gemikaynak"
				+ " AND kg.gemitip_id = " + 1;
			
			ret =  dbManager.executeQuery(statement);
			cevap = ret.getSFSObject(0);

			int tmetal_miktari, tenerji_miktari, tyiyecek_miktari, tpara_miktari;
			tmetal_miktari = cevap.getInt("metal_miktari");
			tenerji_miktari = cevap.getInt("enerji_miktari");
			tyiyecek_miktari = cevap.getInt("yiyecek_miktari");
			tpara_miktari = cevap.getInt("para_miktari");

			trace(tmetal_miktari);
			trace(tenerji_miktari);
			trace(tyiyecek_miktari);
			trace(tpara_miktari);

			if (tmetal_miktari < metal_miktari)
				if (tenerji_miktari < enerji_miktari)
					if (tyiyecek_miktari < yiyecek_miktari)
						if (tpara_miktari < para_miktari) {
							
							statement = "INSERT INTO konum (x,y,z) VALUES ("+konumX + "," + konumY +"," +konumZ+ ")";
							dbManager.executeUpdate(statement);
							statement = "SELECT LAST_INSERT_ID() as key";
							int id = dbManager.executeQuery(statement).getSFSObject(0).getInt("key");
							statement = "INSERT INTO gemi (Konum,Tip) VALUES ("+id+",1)";
							dbManager.executeUpdate(statement);
							statement = "SELECT LAST_INSERT_ID() as key";
							int gemi = dbManager.executeQuery(statement).getSFSObject(0).getInt("key");
							statement = "INSERT INTO kullanicigemi (Gemi_id,Kullanici_id) VALUES("+gemi+","+kullaniciId+")";
							dbManager.executeUpdate(statement);
							statement = "SELECT Kaynak_sayisi FROM gezegen g"
								      + "where g.idGezegen = "
								      + gezegenid ;
							int kaynakid = dbManager.executeQuery(statement).getSFSObject(0).getInt("Kaynak_sayisi"); 
							statement = "UPDATE kaynak ka"
									+ "SET ka.metal_miktari = ka.metal_miktari - "
									+ tmetal_miktari
									+ ", ka.enerji_miktari = ka.enerji_miktari - "
									+ tenerji_miktari
									+ ", ka.yiyecek_miktari = ka.yiyecek_miktari - "
									+ tyiyecek_miktari
									+ ", ka.para_miktari = ka.para_miktari - "
									+ tpara_miktari
									+ " where idkaynak = "
									+ kaynakid;		
							dbManager.executeUpdate(statement);
							trace(statement);

						}
	     }
		 catch(Exception e)
		 {
			  e.printStackTrace();
			  trace("SQL Error: Statement = "+ statement); 
		 }

		 	GameExtension parentEx = (GameExtension) getParentExtension();
		    parentEx.send("GemilerCevap", rtn, player);
		
	       
	  }
	}
      

